package mac5855.app.models;

import java.util.ArrayList;
import java.util.List;

public class GerenciadorDePerguntas {

	private static GerenciadorDePerguntas instancia = new GerenciadorDePerguntas();

	private List<Pergunta> perguntasDoSite = new ArrayList<Pergunta>();

	public synchronized void adicionaPergunta(Pergunta pergunta) {
		this.perguntasDoSite.add(pergunta);
		this.notifyAll();
	}

	private synchronized List<Pergunta> pegaPerguntasMaisNovas(Pergunta ultimaPerguntaVista) {
		if (ultimaPerguntaVista == null)
			return perguntasDoSite;
		List<Pergunta> perguntasMaisNovas = new ArrayList<Pergunta>();
		for (Pergunta pergunta : perguntasDoSite) {
			if (pergunta.ehMaisNova(ultimaPerguntaVista))
				perguntasMaisNovas.add(pergunta);
		}
		return perguntasMaisNovas;
	}

	public synchronized List<Pergunta> pegaEEsperaPorPerguntasMaisNovas(Pergunta ultimaPerguntaVista) {
		List<Pergunta> perguntasMaisNovas;
		while (true) {
			perguntasMaisNovas = pegaPerguntasMaisNovas(ultimaPerguntaVista);
			if (perguntasMaisNovas.size() > 0)
				break;
			try {
				this.wait();
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
		}
		return perguntasMaisNovas;
	}

	public static GerenciadorDePerguntas getInstancia() {
		return instancia;
	}

}
